package net.duohuo.dhroid.adapter.recycleadapter;

import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.ViewGroup;

/**
 * Created by zhy on 16/6/28.
 */
public class WrapperUtils {
	public interface SpanSizeCallback {
		int getSpanSize(GridLayoutManager layoutManager,
				GridLayoutManager.SpanSizeLookup oldLookup, int position);
	}

	public static void onAttachedToRecyclerView(
			RecyclerView.Adapter innerAdapter, RecyclerView recyclerView,
			final SpanSizeCallback callback) {
//		innerAdapter.onAttachedToRecyclerView(recyclerView);

		RecyclerView.LayoutManager layoutManager = recyclerView
				.getLayoutManager();
		if (layoutManager instanceof GridLayoutManager) {
			final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
			final GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager
					.getSpanSizeLookup();

			gridLayoutManager
					.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
						@Override
						public int getSpanSize(int position) {
							return callback.getSpanSize(gridLayoutManager,
									spanSizeLookup, position);
						}
					});
			gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
		}
	}

	public static void setFullSpan(RecyclerView.ViewHolder holder) {
		ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();

		if (lp != null && lp instanceof StaggeredGridLayoutManager.LayoutParams) {

			StaggeredGridLayoutManager.LayoutParams p = (StaggeredGridLayoutManager.LayoutParams) lp;

			p.setFullSpan(true);
		}
	}
}
